package com.cqut.service;

import java.util.List;
import java.util.Map;

import com.cqut.dto.LimitShowDTO;
import com.cqut.model.EvaluationDetails;

public interface IEvaluationDetailsService {
    boolean save(EvaluationDetails evaluationDetails);

    boolean update(EvaluationDetails evaluationDetails);

    boolean delete(String evaluationId);
    
    boolean deleteWholeEvaluation(String evaluationId);

    boolean batchDelete(String[] primaryKeys);

    EvaluationDetails findModel(String targetId);

    EvaluationDetails findModel(String targetId, String[] parameters);

    Map<String, Object> findMap(String targetId);

    Map<String, Object> findMap(String targetId, String[][] parameters);

    List<EvaluationDetails> loadModels();

    List<EvaluationDetails> loadModels(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<EvaluationDetails> loadModels(String[] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps();

    List<Map<String, Object>> loadMaps(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps(String[][] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    long count();

    long count(String condition, Object[] values);

    long count(String[] parameters, boolean isDistinct);

    long count(String[] parameters, String condition, Object[] values, boolean isDistinct);

	List<Map<String, Object>> getEvaluationList(String parentId,String evaluationId,
			String evaluationName, LimitShowDTO limitShowDTO);

	long getEvaluationListCount(String parentId,String evaluationId, String evaluationName);

	boolean addEvaluationDeatils(EvaluationDetails evaluationDetailsModel);

	Map<String, Object> getEvaluationDeatilsById(String targetId);

	boolean updateEvaluation(EvaluationDetails evaluationDetailsModel);

	List<Map<String, Object>> getUsageList(String reviewVersionId,
			String competitionName, LimitShowDTO limitShowDTO);

	long getUsageListCount(String reviewVersionId, String competitionName);

	List<Map<String, Object>> getVersionList(String evaluationId);

	boolean deleteOneEvaluation(String evaluationId);
}
